Integrated microprocessor systems, such as microcontrollers, comprise a plurality of peripheral devices that may require to be initialized to operate properly. These peripheral devices are generally coupled with the central processing unit (CPU) of the microcontroller via an internal bus, such as a peripheral device bus or a main coupling bus. The CPU is used to read and write data to and from these peripheral devices via the respective bus. During operation, a program which is executed by the CPU, might require a specific operation of one or more peripherals. To this end, the program generally initializes the respective control registers of the peripheral. Many programs require, thus, at start-up initialization of a plurality of peripheral devices. Conventional microcontrollers perform this initialization through the CPU which depending on the number of peripherals can be time consuming.
Furthermore, in many applications power consumption, in particular in mobile devices, is important. Thus, during a so-called sleep mode, only those parts of a microcontroller remain active that are necessary for a minimum power operation. In many cases this means that peripheral devices are turned off and their respective registers will, thus, lose all information. In conventional systems, the CPU needs, therefore, to first save all data from a peripheral that is necessary for its operation before it can be shut off and the system can enter a sleep mode. Once a sleep mode has been terminated, the CPU needs to restore all values of the peripheral devices previously saved. This process slows down entering and leaving a sleep mode. Hence, there exists a need for a more convenient way of initializing or restore peripheral values in a microcontroller.